using UnityEngine;

/// <summary>
/// 商店道具脚本，用于处理道具的购买逻辑。
/// </summary>
public class ShopItem : MonoBehaviour
{
    // 该道具的数据（ScriptableObject）
    public Item itemData;
    
    // 玩家对象
    public Player player;

    // 引用商店系统
    private ShopSystem shopSystem;


    /// <summary>
    /// 初始化方法，查找商店系统和玩家对象。
    /// </summary>
    private void Start()
    {
        // 查找商店系统
        shopSystem = FindObjectOfType<ShopSystem>();

        // 查找玩家对象
        player = FindObjectOfType<Player>();

        // 检查是否成功找到玩家对象
        if (player == null)
        {
            Debug.LogError("Player对象未找到");
        }
    }

    /// <summary>
    /// 当玩家进入触发器时调用此方法。
    /// </summary>
    public void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            Debug.Log("玩家碰撞检测到道具");
            
            // 检查玩家是否有足够的钱购买该道具
            if (player.gold >= itemData.SalePrice)
            {
                //TODO：加个ui 点击购买就扣钱
                // 扣除玩家的钱
                player.gold -= itemData.SalePrice;
                // 更新货币显示
                shopSystem.UpdateCurrencyDisplay();

                // 添加道具到玩家的背包
                other.GetComponent<BackpackSystem>().PickUpEquippableItem(itemData);

                // 显示购买成功信息
                shopSystem.ShowMessage($"购买成功：{itemData.itemName}");
                //更新ui数值    （也许）
                shopSystem.PlayerCurrency = player.gold;

                // 销毁商店道具对象
                Destroy(gameObject);
            }
            else
            {
                // 显示钱不够的提示信息
                shopSystem.ShowMessage("金币不足，无法购买！");
            }
        }
    }
}